Today's network links carry vast amounts of information. High bandwidth applications supported by these network links include, for example, streaming video, streaming audio, and large aggregations of voice traffic. In the future, network bandwidth demands will increase. Certain applications, such as streaming audio and streaming video, can generate a large amount of network traffic due to sending such a transmission to multiple subscribers. In order to help decrease network traffic load due to such applications, multicast extensions to network protocols have been developed.
Multicast protocols enable multicast transmission (i.e., one-to-many connections) by replicating a multicast network frame close to the destination of that frame, obviating the need for multiple unicast connections for the same purpose, saving network bandwidth and improving throughput. Upon receiving a multicast frame, a network node can examine a multicast group destination address (GDA) of the frame and determine whether subscribers to the multicast frame are connected to the network node. The network node can then duplicate the multicast frame as needed and transmit the multicast frame to any connected subscribing nodes.
FIG. 1 is a simplified block diagram of a network switch 100. The switch provides ports 110(1)-(N), wherein a network frame arriving at any port can be directed to any other port connected to the switch as determined by an examination of the frame's destination address. Connected to each port are network nodes 120(1,1)-(N,M). In a typical network environment, each node 120(1,1)-(N,M) has a unique media access control (MAC) address. Switch 100 can learn the MAC addresses of network nodes 120(1,1)-(N,M) as those nodes transmit frames to each other via the switch. Each frame transmitted by a network node contains a source MAC address that switch 100 can read and associate with a port 110(1)-(N). Such node-port information is stored in an address table. Such a table has been called an L2 Address table (referring to Level 2 of the Open System Interconnection networking framework for implementing protocols, which is also called the data link layer) or a MAC Address table.
Within the OSI network model a network node, or utilities on a network node, can have a different representation of its network address at each level of the model. Switch 100 can operate at Level 2 (L2 ) (i.e., the data link layer of the OSI model). These L2 , or MAC addresses, of a network node are unique to each network interface on a network and are typically hardware encoded in the network interface. MAC addresses are 48 bits in lengths, containing a 24 bit vendor code followed by a 24 bit hardware address. A network node can also have an OSI Level 3 address, which can include addresses such as internet protocol (IP) addresses. IP addresses are software encoded and can be supplied by an administrator or can be dynamically determined within the environment that the network node resides. In version four of the internet protocol (IPv4), L3 addresses are 32 bits in length, while in internet protocol version 6 (IPv6), L3 addresses are 128 bits in length. When transmitted over a network, an OSI Level 3 packet will be encapsulated within an OSI Level 2 frame, therefore such frames can contain both L2 and L3 source and destination addresses.
FIG. 2 illustrates a L2 address table showing the node-port associations of switch 100. Each entry in the table has an associated index 210. The number of entries in the table can be equal to the number of nodes connected to switch 100 (e.g., P). Each entry in the table contains a MAC address 220 that corresponds to a source MAC address found in frames transmitted by each node (e.g., SMAC (120(1,1)) is the source MAC address for node 120(1,1)). Each L2 address table entry also includes a port 230 corresponding to the node, wherein the association is made by switch 100 when it receives a frame from the network node. Information linking a node address with a particular port is related to the hardware of the node (e.g., a network interface) and is typically static in a L2 address table, unless a node is physically moved from one port to another port on the switch.
An L2 address table cannot automatically be populated with multicast destinations as done with node-port designations. This is because a multicast GDA cannot be a source MAC address. Portions of L3 multicast GDAs are included in an L2 address table through the use of software protocols such as the internet group management protocol (IGMP). When a network node wishes to subscribe to a multicast transmission, a special IGMP protocol frame is transmitted as a multicast “join” request. An IGMP-enabled switch will have a “snooping” software running on the switch to read such a frame and build a corresponding entry for the L2 address table. Such an entry can relate a form of the multicast GDA (an L3 address) with ports that are connected to subscribing nodes.
An IGMP frame contains an L3 GDA along with other information pertinent to the operation requested in the IGMP frame. Such an L3 address requires manipulation to be included in an L2 address table.
FIG. 3 illustrates a manipulation of IPv4 and IPv6 multicast group destination addresses into a form acceptable for inclusion into entries of an L2 address table. An IPv4 GDA is 32 bits in length and falls in the range of addresses 224.0.0.0-239.255.255.255. Such an IP address is illustrated at 310 in FIG. 3. As stated above, an L2 address is limited to 48 bits, which is split into two 24 bit segments. The first three octets (the first 24 bits) of an L2 MAC multicast address are set to 01:00:5E (325). To create an L2 MAC multicast address for the L2 address table corresponding to an L3 GDA, the last 23 bits of the L3 GDA are inserted into the last 23 bits of the MAC address 320. Since a portion of the 32 bit IPv4 address is being inserted into the 23 bit area of the MAC address, nine bits of information are lost from the IPv4 address. Five of the nine bits are significant, since the first four bits of any IPv4 multicast address are always 1110. Such loss of information is referred to as address aliasing, since more than one L3 GDA can be represented by a single L2 MAC multicast address. (For example, an IPv4 GDA 239.255.0.1 will share an L2 MAC multicast address with other IPv4 GDAs such as 238.255.0.1 and 239.127.0.1.) The address aliasing problem is magnified with IPv6 GDAs as illustrated in 330 and 340. An IPv6 address 330 is 128 bits in length, and therefore 80 significant bits are lost in the transition from an L3 IPv6 GDA to a L2 MAC address.
Address aliasing of multicast addresses can result in an increase in network traffic due to frames being sent to a first IP multicast group also being sent to other IP multicast groups that share the same low order 23 bits in the L3 multicast addresses. Further, overhead at receiving nodes can be increased due to unsubscribing nodes having to drop frames. Both the increase in traffic and the dropping of frames results in a waste of network bandwidth resources. It is therefore desirable to construct multicast entries in an L2 address table in such a way that the loss of L3 GDA information is eliminated or reduced, thereby allowing more extensive lookups for multicast frames.